package com.order.domain.pojo;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 订单评论主表
 * </p>
 *
 * @author 小杰大人
 * @since 2025-10-09
 */
@Getter
@Setter
@ToString
@TableName("order_review")
@ApiModel(value = "OrderReview对象", description = "订单评论主表")
public class OrderReview implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 评论ID
     */
    @ApiModelProperty("评论ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联订单ID
     */
    @TableField("order_id")
    @ApiModelProperty("关联订单ID")
    private Long orderId;

    /**
     * 订单编号
     */
    @TableField("order_no")
    @ApiModelProperty("订单编号")
    private String orderNo;

    /**
     * 评论用户ID
     */
    @TableField("user_id")
    @ApiModelProperty("评论用户ID")
    private Long userId;

    /**
     * 关联媒体ID(多个用逗号分隔)
     */
    @TableField("media_ids")
    @ApiModelProperty("关联媒体ID(多个用逗号分隔)")
    private String mediaIds;

    /**
     * 是否匿名 0:否 1:是
     */
    @TableField("is_anonymous")
    @ApiModelProperty("是否匿名 0:否 1:是")
    private Boolean isAnonymous;

    /**
     * 状态 0:待审核 1:已发布 2:已删除 3:违规下架
     */
    @TableField("status")
    @ApiModelProperty("状态 0:待审核 1:已发布 2:已删除 3:违规下架")
    private Byte status;

    /**
     * 点赞数
     */
    @ApiModelProperty("点赞数")
    @TableField("like_count")
    private Integer likeCount;

    /**
     * 回复数
     */
    @ApiModelProperty("回复数")
    @TableField("reply_count")
    private Integer replyCount;

    /**
     * 浏览数
     */
    @ApiModelProperty("浏览数")
    @TableField("view_count")
    private Integer viewCount;

    /**
     * 是否置顶 0:否 1:是
     */
    @TableField("is_top")
    @ApiModelProperty("是否置顶 0:否 1:是")
    private Byte isTop;

    /**
     * 用户IP地址
     */
    @TableField("ip_address")
    @ApiModelProperty("用户IP地址")
    private String ipAddress;

    /**
     * 设备信息
     */
    @ApiModelProperty("设备信息")
    @TableField("device_info")
    private String deviceInfo;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField(value = "create_time" , fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField(value = "update_time" , fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
